Computers today move around and connect to and disconnect from networks much more frequently than they did in the past. Laptops move around among one or more office networks and the home network. As a mobile computer with a radio network link passes from one radio access point to another, its network connection is, in effect, dropped and then reinstated.
Mobility causes problems, however, when a computer either does not know where it is located or does not know the locations of resources of interest to it. Mobile computers, applications, and system services cannot adjust their behavior based on their physical locations if they do not know their locations. Even static computers could use information about the physical locations of themselves and of the machines with which they are communicating. For example, a desktop computer that is unaware of its physical location cannot adequately choose the proxy servers to which it connects, set the time zone value for its clock, choose a nearby printer as the system default, or choose which virtual private networks to join. A server that is ignorant of the physical locations of its remote clients cannot measure the geographic spread of interest in its services, restrict content, or assess shipping charges.
United States Patent Application “Systems and Methods for Uniquely and Persistently Identifying Networks” describes a service that discovers and presents to applications the identities of the logical networks to which their host computer is attached. While helpful in the above scenarios, this information is sometimes not sufficient. Only with relatively precise geographic information can some applications and services adequately conform their behavior to account for the realities of their location. These applications are left having to discover geographic information themselves before they can respond appropriately. The problem is especially acute for mobile computers and for servers with a geographically dispersed, and possibly mobile, set of clients because they must constantly seek location information about themselves or about others.
Forcing each application and system service to discover geographical information is complicated by the fact that multiple methods are often available, depending upon the types of the networks and the machines on them. Some methods currently in use include the IP address of the interface, the subnetwork address, the Domain Name System name, the media access control address of a network interface card, the wireless network name, among others. These methods present problems to the applications because the methods vary in their availability for a particular use, in their reliability, in the precision of the location information they provide, and in the format of their results.